package com.category.douyijia.controller;

import java.util.ArrayList;
import java.util.List;

import com.category.douyijia.model.Area;
import com.category.douyijia.model.OrdMang;
import com.category.douyijia.services.AreaService;
import com.category.douyijia.services.OrdMangService;
import com.jfinal.core.Controller;
import com.jfinal.core.NotAction;
import com.jfinal.core.Path;

/**
 * 创建订单详情表控制器
 * 可以设置所有订单
 * 它可以将那些订单更好的显现出来
 * @author jiangmengyang
 *@version v1.0
 *访问页面路径：douyijia.category.com+/ordmang+"/"+action
 */
@Path("/ordmang")
public class OrdMangController extends Controller {
	/**
	  * 创建订单在服务文件中的dao 的工具
	  * 这个工具可以利用ordMangService里面的，
	  * 增删改查的功能
	  */
		OrdMang ordMang = OrdMangService.ordMangDao;
		 /**
	     * 创建一个非action的方法，
	     * 用于查询订单详情表里的信息
	     * @return
	     * 返回所有订单详情表的信息
	     */
	@SuppressWarnings({"unchecked","rawtypes"})
	@NotAction
	    public List<OrdMang> ordMangAll() {
			return (ArrayList)ordMang.findAll();
	    }
	 /**
	  * 创建一个保存页面模板的方法，
	  * 用于保存页面静态模板
	  */
	    
	 @NotAction
	 private void keepModel() {
		 /*
		  * 创建一个保存多参数的模板，
		  * 在不指定数据类型文件时，
		  * 默认为string的类型
		  */
		 keepPara("comId","comName");
		/*
		 * 创建一个多参数模板，
		 * 指定参数类型为整型
		 */
		 keepPara(Integer.class,"comPrice","comQuantity");
		 /*
		  * 创建一个多参数模板，
		  * 指定参数类型为字符串
		  */
		 keepPara(String.class,"compicture","ordId") ;
	 }
	 /**
	  * 创建一个注册java的服务页面
	  * 使用服务器提供的模板生成页面
	  * 主要用于往页面里添加数据
	  */
	 public void  addtion(){
		 //设置保存数据模板
		 keepModel();
		 //设置网页的模板
		 render("ordmang_addtion.jsp");
	 }
	 /**
	  *创建一个非action得方法
	  *查找是私有的，在页面内进行的
	  * @param comId
	  * 通过comId查找订单详情表
	  * @return
	  * 返回一个订单对象
	  */
	 	@NotAction
	   private OrdMang find_by_comId(String comId) {
	 		/*
	 		 * 如果comId不为空结果返回一个订单对象，
	 		 * 查找订单详情表表里的所有列
	 		 * 如果comId为空，
	 		 * 则返回值为空
	 		 */
		   if(comId!=null && !(comId.equals(""))) {
			   //this.ordMang等于上面建立的实体类的对象
				   return (OrdMang) this.ordMang.find(
						   "select"
								   + "com_id,com_name,com_price,com_quantity,"
				    				+ "com_picture,ord_id "
				    				+ "from OrdMang "
				    				+ "where com_"
				    				+ "id = ?",comId); 
		   }else {
			   return null;
		   }
	   }
	 	/**
	 	 * 如果ordMang不为空则跳转另一个页面
	 	 * 如果ordMang为空则返回原来的页面
	 	 * 进行页面跳转则用public
	 	 * @param ordMang
	 	 * 原来的实体类的一个对象
	 	 * @param  comId
	 	 * 通过 comId去查找订单详情表
	 	 * 再进行更改
	 	 */
	 	public void update_by_comId( OrdMang ordMang,  String comId){
	 		if(ordMang!=null && !(ordMang.equals(""))){
	 			/*
	 			 * oldOrdMang=this.ordMang=ordMang
	 			 * 创建一个原来的地址
	 			 */
	 			OrdMang oldOrdMang = find_by_comId(comId);
	 			this.ordMang._setAttrs(ordMang).update();
	 			render("ordmang_success.jsp");
	 		}else {
				render("ordmang_index.jsp");
			}
	 	}
	 	 /**
	 	  * 如果订单详情表里的信息没有错误的话，
	 	  * 开发者科管理员可以访问并修改页面信息
	 	  */
	 	 public void index() {
	 		 render("ordmang_index.jsp");
	 	 }
}

